import { defineStore } from 'pinia'
export const useUserStore = defineStore('user', {
//   persist: true, // 所有数据持久化
  // persist: {
  //   key: 'user',
  //   storage: window.sessionStorage, // 持久化数据放到sessionStorage，默认放到localStorage
  //   paths: ['name'] // 按需持久化部分数据,[]意味着没有状态被持久化(默认为undefined,持久化整个状态
  // },
  state: () => {
    return {
      name: '张三',
      age: 18,
      sex: '男'
    }
  
  },
  getters: {
    // 不可传参的getter
    getAddAge: state => {
      return state.age + 100
    },
    // 可传递参数的getter
    getAddAge1: state => {
        return (num: number) => state.age + num
      },
    getNameAndAge ():string {
      return this.name + this.getAddAge
    }
  },
  // vuex 修改state必须通过mutations,mutations中的方法命名要求大写字母，比如：SET_TOKEN
  // vuex 中actions 命名，里面的方法首字母大写，比如：Login
  // pinia actions 命名，首字母大写
  actions: {
    SetName (name: string): void {
      this.name = name
    }
  }
  

})